package com.boot.system.service;

import com.boot.common.result.Result;
import com.boot.system.entity.SysModule;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.List;
import java.util.Map;

public interface ModuleService extends IService<SysModule> {

    /**
     * 模块分页
     * @param queryParam 查询条件
     * @return 列表
     */
    Page<SysModule> getModulePage(Map<String, Object> queryParam);

    /**
     * 模块详情
     * @param mid 模块ID
     * @return 列表
     */
    Result<?> getModuleInfo(String mid);

    /**
     * 新增模块
     * @param dataParam 字典表单
     * @return 状态
     */
    Result<?> addModule(Map<String, Object> dataParam);

    /**
     * 修改模块
     * @param dataParam 字典表单
     * @return 状态
     */
    Result<?> updateModule(Map<String, Object> dataParam);

    /**
     * 删除模块
     * @param ids 多个以英文逗号(,)分割
     * @return 状态
     */
    boolean deleteModule(String ids);

    /**
     * 获取（缓存）
     * @param mid 模块ID
     * @return 值
     */
    SysModule getCache(String mid);

    /**
     * 设置（缓存）
     * @param id 模块编号
     */
    void setCache(Long id);

    /**
     * 删除（缓存）
     * @param ids ID集合
     */
    void deleteCache(List<Long> ids);

}
